home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
ms_dos
/
thbgm
/
snfform.txt
next >
Wrap
Text File
|
1993-11-30
|
3KB
|
91 lines
SNFフォーマット V1.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
0x00-0xff SNFヘッダ
0x100- データ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ヘッダ情報(256バイト)
0x00-0x03 識別子("SNF\0")
0x04 バージョンナンバー上位
0x05 バージョンナンバー下位
0x06-0x07 予約域(誰が予約しているんでしょうか?)
0x08-0x39 タイトル名(半角で56文字)
0x40-0x49 FM音源ファイル名(ASCIIZで16文字まで)
0x50-0x59 PCM音源ファイル名(同上。未サポート)
0x60-0x79 作成アプリ名
0x80-0xb9 各パートのデータサイズ。各パートごとにデータ管理を行っているの
で、それを4バイト(符号付)で羅列する。残りは0で埋めておいた 方が確実。
0xc0-0xff 予約域
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
○データ域
以降は、データの固まりとなる。パート毎の区切りは、ヘッダ情報の「各パートのデータサイズ」によって決定することになる。それによって各パートの演奏データの開始場所が分かる。
○演奏ソフト情報
以下は、演奏ソフトが情報を持つことになる。
ボリューム
ピッチ
パンポッド
コントロール(音色)
テンポ
特にボリュームは、BIOSなどでキーONする時に必要。
これらのデフォルト値についての規定は無いが、省略されてもまともに演奏できるく らいの配慮は必要。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
演奏データ
0x00 データの終了
0xff データのループ指定
どちらかがパートの最後にこなくてはならない。演奏ソフトはパート のデータサイズで最後だと判断する必要はない。
0x01-0x7f 音程(1~127)
次に長さが2バイトで表される。ゲートタイムなどはMMLコンパイ ラに委ねられるから、一つの音譜は大抵は休符とセットになる。
0x80 休符
次に長さが1ワードで表される。
0x90 テンポ変更
次に値を1バイトで決める。
この時、0~255は30~285になる。つまり30引いた値。
0xa0 コントロールチェンジ
次に値を1バイト(実は7ビット)で決める。
この時、0~127が1~128になる。
0xb0 ボリューム変更
次の値を1バイト(実は7ビット)で決める。
この時、ボリューム0は認められない。
0xc0 ピッチの変更
次の値を符号付2バイトで決めるが、実質は前後八千くらい。
0xd0 パンポッド変更
次の値を1バイト(実は符号付7ビット)で決める。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
V1.1が出来るとすれば、PCMについても考慮される。
ゲートタイムを内部情報として持てば、データは大幅に削減されるので、それも予定 している。